home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / MOS / INOUT.NEW < prev    next >
Encoding:
Text File  |  1990-12-17  |  15.0 KB  |  3 lines

  1. ⓪ IMPLEMENTATION MODULE InOut; (* V#040 *)⓪ (*$Y+,R-,F-*)⓪ ⓪ (*⓪"18.7.87:  Read... setzen termCH richtig (? nicht getestet!);⓪,Wenn bei Write EOL ausgegeben wird, wird automatisch LF mit⓪,ausgegeben, leider geht's nicht bei WriteString.⓪"1.4.88:   Done wird bei allen exportierten Procs gesetzt. Bei EOF⓪,wird Done FALSE, aber es kommt keine Fehlermeldung mehr.⓪,Bei Ausgaben wird bei Fehlern Done FALSE, Fehlermeldung kommt⓪,weiterhin.⓪"5.6.88:   InOutBase/InOutFile neu. Dadurch wird erreicht, daß die File-⓪,Funktionen nicht eingebunden werden, wenn keine Redirection⓪,verwendet wird.⓪,Wenn bei der Ausgabe auf ein File abgebrochen wird, wird nicht⓪,mehr die Ausgabe auf das Window wiederholt.⓪"27.6.88:  skipLF wird bei Write wieder (?) richtig ausgewertet.⓪"17.9.88:  ReadReal/Card/usw, korrigiert (rdWLR zerstörte A0 -> Endlosschleife⓪,und Zeiger auf Funktionen mit LEA statt MOVE.L geladen)⓪,ReadNum/ReadLNum korrigiert - auch Korrektur in InOutFile !⓪"08.8.89:  Termination-Stack entfernt (nun wird Default-Stack verwendet)⓪"20.7.89:  ReadLReal neu, ReadLine heißt nun ReadFromLine⓪ *)⓪ ⓪ FROM SYSTEM IMPORT ASSEMBLER;⓪ FROM SYSTEM IMPORT WORD, LONGWORD, ADR;⓪ ⓪ IMPORT StrConv, Convert;⓪ ⓪ FROM PrgCtrl IMPORT SetEnvelope, EnvlpCarrier, CatchProcessTerm, TermCarrier,⓪(TermProcess;⓪ ⓪ FROM MOSGlobals IMPORT MemArea, OutOfMemory;⓪ ⓪ FROM Strings IMPORT Append, Length, Empty, MaxChars;⓪ ⓪ FROM InOutBase IMPORT consIn, consOut, eop, level, inLev, outLev;⓪ ⓪ IMPORT InOutBase, InOutFile;⓪ ⓪ ⓪ VAR     ok, skiplf: BOOLEAN;⓪ ⓪ PROCEDURE ReadFromLine     (VAR s: ARRAY OF CHAR);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(TST     consIn⓪(BEQ     d1⓪(MOVE    #1,Done⓪(MOVE.B  #EOL,termCH⓪(MOVE.L  InOutBase.ReadFromLine,A0⓪(JMP     (A0)⓪%d1 MOVE.L  InOutBase.fReadFromLine,A0⓪(JSR     (A0)⓪(MOVE    InOutBase.done,Done⓪(MOVE.W  InOutBase.termCh,termCH⓪$END⓪"END ReadFromLine;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadToken    (VAR s: ARRAY OF CHAR);  (* Liest ein Wort *)⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(TST     consIn⓪(BEQ     d1⓪(MOVE    #1,Done⓪(MOVE.B  #EOL,termCH⓪(MOVE.L  InOutBase.ReadToken,A0⓪(JMP     (A0)⓪%d1 MOVE.L  InOutBase.fReadToken,A0⓪(JSR     (A0)⓪(MOVE    InOutBase.done,Done⓪(MOVE.W  InOutBase.termCh,termCH⓪$END⓪"END ReadToken;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadLn;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(MOVE.B  #EOL,termCH⓪(TST     consIn⓪(BEQ     d1⓪(MOVE    #1,Done⓪(MOVE.L  InOutBase.ReadLn,A0⓪(JMP     (A0)⓪%d1 MOVE.L  InOutBase.fReadLn,A0⓪(JSR     (A0)⓪(MOVE    InOutBase.done,Done⓪$END⓪"END ReadLn;⓪"(*$L=*)⓪ PROCEDURE EndOfLine (skip: BOOLEAN): BOOLEAN;⓪"BEGIN⓪"END EndOfLine;⓪ ⓪ ⓪ PROCEDURE Read (VAR c: CHAR);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(TST     consIn⓪(BEQ     d1⓪(MOVE    #1,Done⓪(MOVE.L  InOutBase.Read,A0⓪(JMP     (A0)⓪%d1 MOVE.L  InOutBase.fRead,A0⓪(JSR     (A0)⓪(MOVE    InOutBase.done,Done⓪$END⓪"END Read;⓪"(*$L=*)⓪ ⓪ ⓪ PROCEDURE KeyPressed   (): BOOLEAN;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(TST     consIn⓪(BEQ     t0⓪(MOVE    #1,Done⓪(MOVE.L  InOutBase.KeyPressed,A0⓪(JMP     (A0)⓪%t0 MOVE.L  InOutBase.fKeyPressed,A0⓪(JSR     (A0)⓪(MOVE    InOutBase.done,Done⓪$END⓪"END KeyPressed;⓪"(*$L=*)⓪ ⓪ PROCEDURE CondRead     (VAR c: CHAR; VAR valid: BOOLEAN);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(TST     consIn⓪(BEQ     d1⓪(MOVE    #1,Done⓪(MOVE.L  InOutBase.CondRead,A0⓪(JMP     (A0)⓪%d1 MOVE.L  InOutBase.fCondRead,A0⓪(JSR     (A0)⓪(MOVE    InOutBase.done,Done⓪$END⓪"END CondRead;⓪"(*$L=*)⓪ ⓪ PROCEDURE BusyRead (VAR c: CHAR);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(LINK    A5,#0⓪(SUBQ.L  #2,A7⓪(MOVE.L  A7,(A3)+⓪(JSR     CondRead⓪(ADDQ.L  #2,A7⓪(UNLK    A5⓪$END⓪"END BusyRead;⓪"(*$L=*)⓪ ⓪ PROCEDURE FlushKbd;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(LINK    A5,#0⓪(TST.W   consIn⓪(BEQ     ende⓪&c JSR     KeyPressed⓪(TST     -(A3)⓪(BEQ     ende⓪(CLR.W   -(A7)⓪(MOVE.L  A7,(A3)+⓪(JSR     Read⓪(ADDQ.L  #2,A7⓪(BRA     c⓪&ende⓪(UNLK    A5⓪$END⓪"END FlushKbd;⓪"(*$L=*)⓪ ⓪ PROCEDURE inp (VAR s:ARRAY OF CHAR);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(MOVE    #1,Done⓪(MOVE.B  #EOL,termCH⓪(LINK    A5,#0⓪(MOVE.L  InOutBase.ReadString,A0⓪(JSR     (A0)⓪(UNLK    A5⓪$END⓪"END inp;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadString (VAR s: ARRAY OF CHAR);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(TST     consIn⓪(BEQ     d1⓪(MOVE    #1,Done⓪(MOVE.B  #EOL,termCH⓪(MOVE.L  InOutBase.ReadString,A0⓪(JMP     (A0)⓪%d1 MOVE.L  InOutBase.fReadString,A0⓪(JSR     (A0)⓪(MOVE    InOutBase.done,Done⓪(MOVE.W  InOutBase.termCh,termCH⓪$END⓪"END ReadString;⓪"(*$L=*)⓪ ⓪ PROCEDURE rdWLR;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(MOVE.L  InOutBase.fRdWLR,A2⓪(JSR     (A2)⓪(MOVE.W  InOutBase.done,Done⓪(MOVE.W  InOutBase.termCh,termCH⓪$END⓪"END rdWLR;⓪"(*$L=*)⓪ ⓪ PROCEDURE rdWord;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(TST     consIn⓪(BEQ     d1⓪(LINK    A5,#-18⓪(MOVE.L  A7,(A3)+⓪(MOVE    #17,(A3)+⓪(MOVE.L  A1,-(A7)⓪(JSR     inp⓪(MOVE.L  (A7)+,A1⓪(MOVE.L  A7,(A3)+⓪(MOVE    #17,(A3)+⓪(CLR     -(A7)⓪(MOVE.L  A7,(A3)+⓪(MOVE.L  #Done,(A3)+⓪(JSR     (A1)⓪(MOVE.W  -(A3),D0⓪(MOVE.L  -(A3),A0⓪(MOVE.W  D0,(A0)⓪(UNLK    A5⓪(RTS⓪%d1 JMP     rdWLR⓪$END⓪"END rdWord;⓪"(*$L=*)⓪ ⓪ PROCEDURE rdLong;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(TST     consIn⓪(BEQ     d1⓪(LINK    A5,#-34⓪(MOVE.L  A7,(A3)+⓪(MOVE    #33,(A3)+⓪(MOVE.L  A1,-(A7)⓪(JSR     inp⓪(MOVE.L  (A7)+,A1⓪(MOVE.L  A7,(A3)+⓪(MOVE    #33,(A3)+⓪(CLR     -(A7)⓪(MOVE.L  A7,(A3)+⓪(MOVE.L  #Done,(A3)+⓪(JSR     (A1)⓪(MOVE.L  -(A3),D0⓪(MOVE.L  -(A3),A0⓪(MOVE.L  D0,(A0)⓪(UNLK    A5⓪(RTS⓪%d1 JMP     rdWLR⓪$END⓪"END rdLong;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadCard     (VAR v: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(LEA     StrConv.StrToCard,A1⓪(MOVE.L  InOutBase.fReadCard,A0⓪(JMP     rdWord⓪$END⓪"END ReadCard;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadInt      (VAR v: INTEGER);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(LEA     StrConv.StrToInt,A1⓪(MOVE.L  InOutBase.fReadInt,A0⓪(JMP     rdWord⓪$END⓪"END ReadInt;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadLCard    (VAR v: LONGCARD);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(LEA     StrConv.StrToLCard,A1⓪(MOVE.L  InOutBase.fReadLCard,A0⓪(JMP     rdLong⓪$END⓪"END ReadLCard;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadLInt     (VAR v: LONGINT);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(LEA     StrConv.StrToLInt,A1⓪(MOVE.L  InOutBase.fReadLInt,A0⓪(JMP     rdLong⓪$END⓪"END ReadLInt;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadNum      (VAR v: WORD;     base: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(LINK    A5,#-18⓪(TST     consIn⓪(BEQ     d1⓪(MOVE.L  A7,(A3)+⓪(MOVE    #17,(A3)+⓪(JSR     inp             ; ReadString⓪(MOVE.W  -(A3),D0⓪(MOVE.L  A7,(A3)+        ; str⓪(MOVE    #17,(A3)+⓪(MOVE.W  D0,(A3)+        ; base⓪(CLR     -(A7)⓪(MOVE.L  A7,(A3)+        ; pos⓪(MOVE.L  #Done,(A3)+     ; valid⓪(JSR     StrConv.StrToNum⓪(MOVE.W  -(A3),D0⓪(MOVE.L  -(A3),A0⓪(MOVE.W  D0,(A0)⓪(UNLK    A5⓪(RTS⓪%d1 MOVE.L  InOutBase.fReadNum,A0⓪(JSR     (A0)⓪(UNLK    A5⓪(MOVE.W  InOutBase.done,Done⓪(MOVE.W  InOutBase.termCh,termCH⓪$END⓪"END ReadNum;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadLNum     (VAR v: LONGWORD; base: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(LINK    A5,#-34⓪(TST     consIn⓪(BEQ     d1⓪(MOVE.L  A7,(A3)+⓪(MOVE    #33,(A3)+⓪(JSR     inp             ; ReadString⓪(MOVE.W  -(A3),D0⓪(MOVE.L  A7,(A3)+        ; str⓪(MOVE    #33,(A3)+⓪(MOVE.W  D0,(A3)+        ; base⓪(CLR     -(A7)⓪(MOVE.L  A7,(A3)+        ; pos⓪(MOVE.L  #Done,(A3)+     ; valid⓪(JSR     StrConv.StrToLNum⓪(MOVE.L  -(A3),D0⓪(MOVE.L  -(A3),A0⓪(MOVE.L  D0,(A0)⓪(UNLK    A5⓪(RTS⓪%d1 MOVE.L  InOutBase.fReadLNum,A0⓪(JSR     (A0)⓪(UNLK    A5⓪(MOVE.W  InOutBase.done,Done⓪(MOVE.W  InOutBase.termCh,termCH⓪$END⓪"END ReadLNum;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadLReal     (VAR v: LONGREAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(TST     consIn⓪(BEQ     d1⓪(LINK    A5,#-26⓪(MOVE.L  A7,(A3)+⓪(MOVE    #25,(A3)+⓪(MOVE.L  A1,-(A7)⓪(JSR     inp⓪(MOVE.L  (A7)+,A1⓪(MOVE.L  A7,(A3)+⓪(MOVE    #25,(A3)+⓪(CLR     -(A7)⓪(MOVE.L  A7,(A3)+⓪(MOVE.L  #Done,(A3)+⓪(JSR     StrConv.StrToReal⓪(MOVE.L  -(A3),D1⓪(MOVE.L  -(A3),D0⓪(MOVE.L  -(A3),A0⓪(MOVE.L  D0,(A0)+⓪(MOVE.L  D1,(A0)⓪(UNLK    A5⓪(RTS⓪%d1 MOVE.L  InOutBase.fReadReal,A0⓪(JMP     rdWLR⓪$END⓪"END ReadLReal;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadReal     (VAR r: REAL);⓪"VAR r2: LONGREAL;⓪"BEGIN⓪$r:= REAL (0);⓪$ReadLReal (r2);⓪$IF Done THEN⓪&IF ABS (r2) > MAX (REAL) THEN⓪(Done:= FALSE;⓪&ELSE⓪(r:= r2⓪&END⓪$END⓪"END ReadReal;⓪"⓪ ⓪ (* ********************************************************************** *)⓪ (* ************************    A u s g a b e    ************************* *)⓪ (* ********************************************************************** *)⓪ ⓪ PROCEDURE chkOut;⓪"BEGIN⓪$ASSEMBLER⓪(MOVE    consOut,D0⓪(EORI    #1,D0⓪(MOVE    D0,Done⓪$END⓪"END chkOut;⓪"⓪ PROCEDURE Write (c: CHAR);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(MOVE    #1,Done⓪(MOVE.B  -2(A3),D0⓪(TST     skiplf⓪(BEQ     d1⓪(CMPI.B  #$0A,D0⓪(BEQ     d4⓪%d1 CMPI.B  #$0D,D0⓪(BNE     d2⓪(JSR     WriteLn⓪(MOVE    #1,skiplf⓪(RTS⓪%d2 CLR     skiplf⓪(TST     consOut⓪(BNE     d3⓪(MOVE.L  InOutBase.fWrite,A0⓪(JSR     (A0)⓪(JMP     chkOut⓪%d3 MOVE.L  InOutBase.Write,A0⓪(JMP     (A0)⓪%d4 CLR     skiplf⓪$END;⓪"END Write;⓪"(*$L=*)⓪ ⓪ ⓪ PROCEDURE WriteLn;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(MOVE    #1,Done⓪(CLR     skiplf⓪(TST     consOut⓪(BNE     d1⓪(MOVE.L  InOutBase.fWriteLn,A0⓪(JSR     (A0)⓪(JMP     chkOut⓪%d1 MOVE.L  InOutBase.WriteLn,A0⓪(JMP     (A0)⓪%d2⓪$END⓪"END WriteLn;⓪"(*$L=*)⓪ ⓪ PROCEDURE WritePg;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(MOVE    #1,Done⓪(CLR     skiplf⓪(TST     consOut⓪(BNE     d1⓪(MOVE.L  InOutBase.fWritePg,A0⓪(JSR     (A0)⓪(JMP     chkOut⓪%d1 MOVE.L  InOutBase.WritePg,A0⓪(JMP     (A0)⓪%d2⓪$END⓪"END WritePg;⓪"(*$L=*)⓪ ⓪ ⓪ PROCEDURE GotoXY (x, y: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(CLR     skiplf⓪(MOVE    #1,Done⓪(TST     consOut⓪(BNE     d1⓪(MOVE.L  InOutBase.fGotoXY,A0⓪(JSR     (A0)⓪(JMP     chkOut⓪%d1 MOVE.L  InOutBase.GotoXY,A0⓪(JMP     (A0)⓪%d2⓪$END⓪"END GotoXY;⓪"(*$L=*)⓪ ⓪ ⓪ PROCEDURE WriteString (REF s: ARRAY OF CHAR);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(CLR     skiplf⓪(MOVE    #1,Done⓪(TST     consOut⓪(BNE     c0⓪(MOVE.L  InOutBase.fWriteString,A0⓪(JSR     (A0)⓪(JMP     chkOut⓪%c0 MOVE.L  InOutBase.WriteString,A0⓪(JMP     (A0)⓪%e0⓪$END;⓪"END WriteString;⓪"(*$L=*)⓪ ⓪ ⓪ PROCEDURE prpPrt;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(MOVE    #1,Done⓪(MOVE.L  A7,(A3)+⓪(MOVE    #MaxChars,(A3)+⓪(TST     consOut⓪(BNE     c0⓪(MOVE.L  InOutBase.fWriteString,A0⓪(JSR     (A0)⓪(UNLK    A5⓪(JMP     chkOut⓪%c0 MOVE.L  InOutBase.WriteString,A0⓪(JSR     (A0)⓪(UNLK    A5⓪$END⓪"END prpPrt;⓪"(*$L=*)⓪ ⓪ PROCEDURE prpOut;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(MOVE.L  (A7)+,A1                ; Rücksprungadr. v. Stack⓪(CLR     skiplf⓪(LINK    A5,#-MaxChars-1⓪(MOVE.L  A7,(A3)+⓪(MOVE    #MaxChars,(A3)+⓪(JMP     (A1)⓪$END⓪"END prpOut;⓪"(*$L=*)⓪ ⓪ ⓪ PROCEDURE WriteCard    (v:LONGCARD; width: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(JSR     prpOut⓪(JSR     Convert.ConvCard⓪(JMP     prpPrt⓪$END;⓪"END WriteCard;⓪"(*$L=*)⓪ ⓪ PROCEDURE WriteInt     (v: LONGINT;  width: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(JSR     prpOut⓪(JSR     Convert.ConvInt⓪(JMP     prpPrt⓪$END;⓪"END WriteInt;⓪"(*$L=*)⓪ ⓪ PROCEDURE WriteHex     (v: WORD;     width: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(JSR     prpOut⓪(JSR     Convert.ConvHex⓪(JMP     prpPrt⓪$END;⓪"END WriteHex;⓪"(*$L=*)⓪ ⓪ PROCEDURE WriteLHex    (v: LONGWORD; width: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(JSR     prpOut⓪(JSR     Convert.ConvLHex⓪(JMP     prpPrt⓪$END;⓪"END WriteLHex;⓪"(*$L=*)⓪ ⓪ PROCEDURE WriteNum     (v: WORD;     base, width: CARDINAL; filler: CHAR);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(JSR     prpOut⓪(JSR     Convert.ConvNum⓪(JMP     prpPrt⓪$END;⓪"END WriteNum;⓪"(*$L=*)⓪ ⓪ PROCEDURE WriteLNum    (v: LONGWORD; base, width: CARDINAL; filler: CHAR);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(JSR     prpOut⓪(JSR     Convert.ConvLNum⓪(JMP     prpPrt⓪$END;⓪"END WriteLNum;⓪"(*$L=*)⓪ ⓪ PROCEDURE WriteFix     (v: LONGREAL; width, frac: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(JSR     prpOut⓪(JSR     Convert.ConvFix⓪(JMP     prpPrt⓪$END;⓪"END WriteFix;⓪"(*$L=*)⓪ ⓪ PROCEDURE WriteFloat   (v: LONGREAL; width, frac: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(JSR     prpOut⓪(JSR     Convert.ConvFloat⓪(JMP     prpPrt⓪$END;⓪"END WriteFloat;⓪"(*$L=*)⓪ ⓪ PROCEDURE WriteEng     (v: LONGREAL; width, frac: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(JSR     prpOut⓪(JSR     Convert.ConvEng⓪(JMP     prpPrt⓪$END;⓪"END WriteEng;⓪"(*$L=*)⓪ ⓪ PROCEDURE WriteReal    (v: LONGREAL; width, frac: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(JSR     prpOut⓪(JSR     Convert.ConvReal⓪(JMP     prpPrt⓪$END;⓪"END WriteReal;⓪"(*$L=*)⓪ ⓪ ⓪ ⓪ PROCEDURE RedirectInput (REF fileName: ARRAY OF CHAR);⓪"BEGIN⓪$InOutFile.redirectInput (fileName);⓪$Done:= InOutBase.done⓪"END RedirectInput;⓪ ⓪ PROCEDURE RedirectOutput (REF fileName: ARRAY OF CHAR; append: BOOLEAN);⓪"BEGIN⓪$InOutFile.redirectOutput (fileName, append);⓪$Done:= InOutBase.done⓪"END RedirectOutput;⓪ ⓪ PROCEDURE OpenInput ( REF defExt: ARRAY OF CHAR );⓪"BEGIN⓪$InOutFile.openInput (defExt);⓪$Done:= InOutBase.done⓪"END OpenInput;⓪ ⓪ PROCEDURE OpenOutput ( REF defExt: ARRAY OF CHAR );⓪"BEGIN⓪$InOutFile.openOutput (defExt);⓪$Done:= InOutBase.done⓪"END OpenOutput;⓪ ⓪ ⓪ PROCEDURE CloseInput;⓪"BEGIN⓪$InOutBase.fCloseInput;⓪$Done:= TRUE⓪"END CloseInput;⓪ ⓪ PROCEDURE CloseOutput;⓪"BEGIN⓪$InOutBase.fCloseOutput;⓪$Done:= TRUE⓪"END CloseOutput;⓪ ⓪ ⓪ PROCEDURE Terminate;⓪"BEGIN⓪$IF consIn OR consOut THEN InOutBase.CloseWdw END;⓪$eop:= TRUE;⓪$InOutBase.fCloseOutput;⓪$InOutBase.fCloseInput⓪"END Terminate;⓪ ⓪ PROCEDURE ChgLevel (start:BOOLEAN; inChild:BOOLEAN; VAR exitCode:INTEGER);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(SUBQ.L  #4,A3⓪(MOVE.L  -(A3),D0⓪(TST     D0⓪(BEQ     d4⓪(SWAP    D0⓪(TST     D0⓪(BEQ     d1⓪(ADDQ    #1,level⓪%d4 RTS⓪%d1 MOVE    level,D0⓪(TST     consIn⓪(BNE     d2⓪(CMP     inLev,D0⓪(BNE     d2⓪(MOVE.L  InOutBase.fCloseInput,A0⓪(JSR     (A0)⓪%d2 TST     consOut⓪(BNE     d3⓪(CMP     outLev,D0⓪(BNE     d3⓪(MOVE.L  InOutBase.fCloseOutput,A0⓪(JSR     (A0)⓪%d3 SUBQ    #1,level⓪$END⓪"END ChgLevel;⓪"(*$L=*)⓪ ⓪ VAR env: EnvlpCarrier;⓪$term: TermCarrier;⓪$wsp: MemArea;⓪ ⓪ BEGIN⓪"(* Das Öffnen des Fensters muß VOR 'CatchProcessTerm' erfolgen, weil⓪#* TextWindows ggf. auch 'CatchProcessTerm' aufruft! *)⓪"InOutBase.OpenWdw (0,0);⓪"eop:= FALSE;⓪"SetEnvelope (env,ChgLevel,wsp);⓪"CatchProcessTerm (term,Terminate,wsp);⓪"consIn:= TRUE;⓪"consOut:= TRUE;⓪"skiplf:=FALSE;⓪ END InOut.⓪ ə
  2. (* $000019B5$FFF6A76E$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$000004A7$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$00000D35$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497AÇ$000009F9T.......T.......T.......T.......T.......T.......T.......T.......T.......T.......$0000097D$0000094D$000009F9$00000C8D$000008F8$00000923$00000A17$0000091E$000009FC$000007EB$000009FC$FFF1670A$00000995$FFF1670A$FFF1670A$000009C6îÇâ*)
  3.